#ifndef _COMMITTED_NEXT_BATCH_HPP
#define _COMMITTED_NEXT_BATCH_HPP

#include <boost/shared_ptr.hpp>
#include "NextBatch.hpp"
#include "HistoryDigest.hpp"
#include "CommandBatch.hpp"
#include "NonDeterminism.hpp"
#include "CertificateEntry.hpp"

namespace BFT
{
	namespace messages
	{
		class CommittedNextBatch : public NextBatch
		{
			public:
			
			CommittedNextBatch(uint32_t _view, boost::shared_ptr<NextBatch> _nb);
			CommittedNextBatch(uint32_t _view, uint32_t _seq,
					     boost::shared_ptr<HistoryDigest> _history,
					     boost::shared_ptr<CommandBatch> _commands,
					     boost::shared_ptr<NonDeterminism> _nondet,
					     boost::shared_ptr<Digest> _cpDig, bool _cp, uint32_t _sendingReplica);
			CommittedNextBatch(uint32_t _view, uint32_t _seq,
					     boost::shared_ptr<CertificateEntry> _entry,
					     bool _cp, uint32_t _sendingReplica);
			CommittedNextBatch(boost::shared_ptr<char> _bytes, int _bytes_size);
		};
	}
}


#endif 
